Portal-based systems provide Web clients with a single point of entry to disparate backend applications, servers and/or services. The backend applications, servers and/or services may be implemented by one or more entities (e.g., a corporation, a public source, a Software-as-a-Service provider).
User interface (UI) applications may be used to present information from these entities to a user via a Web client. In some cases, one portal page may present many applications that come from different locations. FIG. 1 illustrates a portal-based system which supports UI applications. In operation, browser 110 calls portal server 120 using a Uniform Resource Locator (URL) associated with a page stored on portal server 120. In response, portal server 120 transmits portal page 115 to browser 110. Browser 110 parses page 115 and requests one or many applications specified in page 115 from application loader 124.
Application loader 124 acquires application code of the requested application and parses the application code to convert all URLs within the application code to URLs associated with proxy 122. The application code may include javascript files, CSS files or any other file types containing relative or absolute URLs, and the conversion of URLs is done according to logic or semantics of the portal and proxy system. For example, a URL within the acquired application code may refer to one of applications/servers/services 130-134 of FIG. 1, and application loader 124 changes this URL to a URL of proxy 122. The new URL may indicate the referred-to one of applications/servers/services 130-134. Application loader 124 then provides the changed application code 117 to browser 110.
During execution, application code 117 may call one of the changed URLs, which results in transmission of a request to proxy 122. Proxy 122 may then forward a corresponding request to a backend location indicated by the changed URL. Portal page 115 also includes XHRWrapper 119. In a case that execution of application code 117 generates and calls a URL which was not explicitly specified in application code 117 (i.e., an AJAX call), XHRWrapper 119 overrides the native XMLHttpResponse function of browser 110 to direct this call to proxy 122 as illustrated.
Increasingly, UI applications are developed based on UI frameworks. Execution of such a UI application requires access to files of its associated UI framework and may include requests for other resources of the UI framework. The above-described portal-based systems fail to efficiently support framework-based UI applications.